#ifndef _PFS_II_H_
#define _PFS_II_H_ XD
// ---- ---- 0w0 ---- ----

#include <vector>
#include "pfs_calculator.h"

class II_PFS : public PFS_Calculator {	
public:

  explicit II_PFS(const PFS_Item& pfs_item,
		double time_limit, int neighbor_per_time, int retry_limit);

  virtual Answer Calculate() override;	

	virtual void FindBestNeighbor(const Solution& solution,
		int* score_now, Solution* next_solution);

	virtual void SolutionGo(Solution* solution, const Solution next_solution) {
		*solution = next_solution;
	}

	int retry_limit() const { return retry_limit_; }
	int neighbor_per_time() const { return neighbor_per_time_; }

private:
  const int neighbor_per_time_;
  void II_Process(double start_time);
	const int retry_limit_;
};

// ---- ---- >w< ---- ----
#endif